Matering Ethereum3章 Ethereum Clients
Ethereum ClientはEthereumのルールに乗っ取りP2Pネットワークに参加していいるClieint
Ethereumから派生したブロックチェーンはいっぱいあるが、Clientに互換性があるわけではない。
現時点で6つの実装と6つの異なる言語で書かれている。
Parity, written in Rust
Geth, written in Go
cpp-ethereum, written in C++
pyethereum, written in Python
Mantis, written in Scala
Harmony, written in Java
ParityとGethが一般的。
フルノードのDLには80-100GB必要(2018.9当時)
Remote clients
→トランザクションの作成とネットワークの接続がメインの仕事。MetaMask, Emerald Wallet, MyEtherWallet,MyCryptoなど。
EthereumのRemote clientはブロックヘッダーとトランザクションを検証しない。セキュリティはフルノードに頼っている。
フルノードの利点と欠点
利点
Ethereumベースネットワークの障害耐性と検閲耐性
全トランザクションの承認
仲介者なしで全コントラクトにアクセス可能
仲介者なしでネットワークにデプロイ可能
オフラインでもブロックチェーンの状態確認可能
3rd partyに情報を渡さず情報を閲覧可能。
欠点
ハードウェアコスト
開始するまでに数日かかる(全履歴をDLするため)
保全しアップデートする必要がある
フルノードを動かすときのミニマム条件
CPU with 2+ cores
At least 80 GB free storage space
4 GB RAM minimum with an SSD, 8 GB+ if you have an HDD
8 MBit/sec download internet service
Parity and Geth client software
Parityの場合、OpenSSLとかLibudevとか必要。
$ sudo apt-get install openssl libssl-dev libudev-dev cmake
それ以外は
から確認。
parityのインストール
$ git clone https://github.com/paritytech/parity
$ cd parity
$ cargo install
gethのインストール
$ git clone <Repository Link>
$ cd go-ethereum
$ make geth
以下、gethとparityの立ち上げ方なので割愛